package ningbo.api;

/**
 * @Author 宁铂
 * @Date 2021/7/17 12:34
 * @Version 1.0
 */
public class TestString {
    /** 本类用于练习String的创建和常用方法 */
    public static void main(String[] args) {
        /** 字符串底层维护的是char【】，存放在堆中 */
        char[] value = {'a','b','c'};
        String s1 = new String(value); //触发含参构造String类对象（底层中，String是个类）
        String s11 = new String(value);

        /** 此方法创建底层样会 new String （） ，存放在堆中常量池内，效率高 */
        String s2 = "abc";
        String s22 = "abc";

        String s3 = "bbb";

        System.out.println(s1 == s2);   //false
        System.out.println(s1 == s11);  //false
        System.out.println(s2 == s22);  //true
        System.out.println(s2 == s3);   //false

        /** ==比较的是地址值
         *  object中的equals 底层默认比较地址值，
         *  但String 类默认重写此方法，不在比较地址值，而是两个串的具体内容
         *  只要串的内容一致 equals 就返回 true
         * */
        System.out.println(s1.equals(s2));  //true
    }
}
